#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	scanf("%d %d %d", &a, &b, &c);
//	if (a > b && a > c)
//	{
//		printf("%d\n", a);
//	}
//	if (b > a && b > c)
//	{
//		printf("%d\n", b);
//	}
//	if (c > a && c > b)
//	{
//		printf("%d\n", c);
//	}
//
//
//	return 0;
//}
//
//int main()
//{
//	int i = 0;
//	float n = 0;
//	float m = 0;
//	int a = 0;
//	float b = 0;
//	float c = 0;
//	float j = 0;
//	for (i = 2; i <= 100; i+=2)
//	{
//		m = 1.0 / i;
//		n = m + n;
//	}
//	n = n / -1;
//	printf("%f\n", n);
//
//	
//
//	for (a = 1; a <= 100; a += 2)
//	{
//		b = 1.0 / a;
//		c = b + c;
//	}
//	printf("%f\n", c);
//	
//	j = c + n;
//	printf("%f\n", j);
//
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	//float n = 1.0;
//	//float m = 0;
//	for (i = 2; i <= 100; i++)
//	{
//
//		if (i % 2 == 0)
//		{
//			i = i / -1;
//			printf("%d", i);
//		}
//		
//
//		//m = 1.0 / i;
//		//n = m + n;
//		//printf("%.2f", n);
//	}
//
//
//
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	int c = 0;
//	for (i = 0; i <= 100; i++)
//	{
//		if (i % 10 == 9 || i / 10 == 9)
//			c++;
//
//	}
//	printf("%d\n", c);
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 1000; i <= 2000; i++)
//	{
//		if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
//			printf("%d ", i);
//	}
//	return 0;
//}

int main()
{
    int m = 0;
    int n = 0;
    int a = 0;
    scanf("%d %d", &m, &n);

    while (a = m % n)
    {
        m = n;
        n = a;
    }
    printf("%d\n", n);
    return 0;
}
